package com.hzw.saas.common.config.util;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hzw.saas.common.util.MapperUtil;

/**
 * 分页工具类
 *
 * @author zzl
 * @since 01/13/2021
 */
public class PageUtils {

    /**
     * 转换分页中的类型
     *
     * @param iPage 原分页
     * @param clazz 目标类型
     * @param <T>   目标类型
     * @return 转换分页
     */
    public static <T> IPage<T> convert(IPage<?> iPage, Class<T> clazz) {
        IPage<T> result = new Page<>(iPage.getCurrent(), iPage.getSize(), iPage.getTotal(), iPage.isSearchCount());
        List<T> ts = Objects.nonNull(iPage.getRecords()) ? MapperUtil.nf().mapAsList(iPage.getRecords(), clazz) : new ArrayList<>();
        result.setRecords(ts);
        return result;
    }

}
